package model;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import org.w3c.dom.Document;

import com.wutka.jox.JOXBeanOutputStream;

public class Cliente
{

	private String nome;
	private Integer cpf;
	private String identidade;
	private Date dataNascimento;
	private String logradouro;
	private Integer numero;
	private String complemento;
	private String cep;
	private String bairro;
	private String cidade;
	private String estado;
	private String pais;
	private String telefone;
	private String banco;
	private Integer contaCorrente;
	private Integer agencia;
	private Document xml;
	
	public Cliente()
	{
		
	}

	public String getNome()
	{
		return this.nome;
	}

	public void setNome(String nome)
	{
		this.nome = nome;
	}

	public Integer getCpf()
	{
		return this.cpf;
	}

	public void setCpf(Integer cpf)
	{
		this.cpf = cpf;
	}

	public String getIdentidade()
	{
		return this.identidade;
	}

	public void setIdentidade(String identidade)
	{
		this.identidade = identidade;
	}

	public Date getDataNascimento()
	{
		return this.dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento)
	{
		this.dataNascimento = dataNascimento;
	}

	public String getLogradouro()
	{
		return this.logradouro;
	}

	public void setLogradouro(String logradouro)
	{
		this.logradouro = logradouro;
	}

	public Integer getNumero()
	{
		return this.numero;
	}

	public void setNumero(Integer numero)
	{
		this.numero = numero;
	}

	public String getComplemento()
	{
		return this.complemento;
	}

	public void setComplemento(String complemento)
	{
		this.complemento = complemento;
	}

	public String getCep()
	{
		return this.cep;
	}

	public void setCep(String cep)
	{
		this.cep = cep;
	}

	public String getBairro()
	{
		return this.bairro;
	}

	public void setBairro(String bairro)
	{
		this.bairro = bairro;
	}

	public String getCidade()
	{
		return this.cidade;
	}

	public void setCidade(String cidade)
	{
		this.cidade = cidade;
	}

	public String getEstado()
	{
		return this.estado;
	}

	public void setEstado(String estado)
	{
		this.estado = estado;
	}

	public String getPais()
	{
		return this.pais;
	}

	public void setPais(String pais)
	{
		this.pais = pais;
	}

	public String getTelefone()
	{
		return this.telefone;
	}

	public void setTelefone(String telefone)
	{
		this.telefone = telefone;
	}

	public Integer getContaCorrente()
	{
		return this.contaCorrente;
	}

	public void setContaCorrente(Integer contaCorrente)
	{
		this.contaCorrente = contaCorrente;
	}

	public Integer getAgencia()
	{
		return this.agencia;
	}

	public void setAgencia(Integer agencia)
	{
		this.agencia = agencia;
	}
		
	public String toString()
	{
		StringBuilder saida = new StringBuilder();
		
		saida.append("Nome: " + nome + "\n");
		saida.append("CPF: " + cpf + "\n");
		saida.append("Identidade: " + identidade + "\n");
		saida.append("Data de Nascimento: " + dataNascimento.toString() + "\n");
		saida.append("Logradouro: " + logradouro + "\n");
		saida.append("Numero: " + numero + "\n");
		saida.append("Complemento: " + complemento + "\n");
		saida.append("CEP: " + cep + "\n");
		saida.append("Bairro: " + bairro + "\n");
		saida.append("Cidade: " + cidade + "\n");
		saida.append("Estado: " + estado + "\n");
		saida.append("Pais: " + pais + "\n");
		saida.append("Telefone: " + telefone + "\n");
		saida.append("ContaCorrente: " + contaCorrente + "\n");
		saida.append("Agencia: " + agencia);
		
		return new String(saida);
	}

	public void generateXMLFile()
	{
		try
		{
			FileOutputStream xmlFile = new FileOutputStream(this.getCpf() + ".xml");
			JOXBeanOutputStream jox = new JOXBeanOutputStream(xmlFile);
			jox.writeObject("cliente", this);
			
		} catch (IOException e)
		{
			e.printStackTrace();
		}

	}
	
	public Document getXml()
	{
		return this.xml;
	}

	public void setXml(Document xml)
	{
		this.xml = xml;
	}

	public String getBanco()
	{
		return this.banco;
	}

	public void setBanco(String banco)
	{
		this.banco = banco;
	}
	
}
